home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / cprog.EXE / VIEWGEN.C < prev    next >
C/C++ Source or Header  |  1995-10-02  |  2KB  |  104 lines

  1. #include <stdio.h>
  2. #include <fcntl.h>
  3. #include <sys\types.h>
  4. #include <sys\stat.h>
  5. #include <io.h>
  6. #include <share.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9. #include <dos.h>
  10. #include <share.h>
  11. #include <conio.h>
  12. #include <limits.h>
  13. #include <direct.h>
  14. #include "view.h"
  15.  
  16. /*
  17.   View General purpose routines
  18. */
  19. void view_error( int isfatal,UCHAR *msg )
  20. {
  21.   int col;
  22.   int len;
  23.   VIEWSAVE *save;
  24.  
  25.   len = max(40,strlen(msg));
  26.   col = 40-(len/2);
  27.  
  28.   if (!isfatal)
  29.     save = view_getsave(11,col-1,3,len+2);
  30.  
  31.   view_attr = ERROR_MESSAGE;
  32.   view_frame("Error - Press <ENTER>",11,col-1,3,len+2);
  33.   view_goto(12,col);
  34.   view_puts(msg,len);
  35.  
  36.   if (!getch()) getch();
  37.  
  38.   if (isfatal)
  39.     exit(1);
  40.   else
  41.     view_putsave(save);
  42. }
  43.  
  44. int max( int x, int y)
  45. {
  46.   return(((x < y) ? y : x));
  47. }
  48.  
  49. int min ( int x, int y)
  50. {
  51.   return(((x < y) ? x : y));
  52. }
  53.  
  54. #if VIEW_HAS_RAW 
  55. UCHAR *view_ultoa( ULONG num, int base, int wide, int fill )
  56. {
  57.    static char workbuf[VIEW_MAX_LONG];
  58.    int work;
  59.    int idx;
  60.  
  61.    workbuf[VIEW_MAX_LONG-1] = '\0';
  62.  
  63.    for (idx = VIEW_MAX_LONG-1; num && idx ;)
  64.      {
  65.      wide --;
  66.      idx  --;
  67.      workbuf[idx] = hexdigits[num%base];
  68.      num /= base;
  69.      }
  70.  
  71.    while( wide > 0  && idx )
  72.      {
  73.      idx --;
  74.      wide --;
  75.      workbuf[idx] = fill;
  76.      }
  77.  
  78.    return(workbuf+idx);
  79. }
  80. #endif
  81.  
  82. #if VIEW_HAS_GOTO
  83. ULONG view_atoul( UCHAR *num, int base )
  84. {
  85.    int idx,jdx;
  86.    ULONG val;
  87.  
  88.    val = 0;
  89.  
  90.    while( *num )
  91.      {
  92.      for (jdx = 0; hexdigits[jdx] && hexdigits[jdx] != *num; jdx ++);
  93.  
  94.      if (!hexdigits[jdx]) break;
  95.  
  96.      val *= base;
  97.      val += jdx;
  98.      num ++;
  99.      }
  100.  
  101.    return(val);
  102. }
  103. #endif /* VIEW_HAS_GOTO */
  104.